#include "kv_store.h"
#include <stdio.h>

int main() {
    // 初始化键值存储
    KVStore *store = kv_store_init("kv_data.txt");
    if (!store) {
        printf("初始化失败\n");
        return 1;
    }
    
    // 测试存储键值对
    printf("存储键值对...\n");
    kv_store_put(store, "name", "张三");
    kv_store_put(store, "age", "25");
    kv_store_put(store, "city", "北京");
    
    // 测试获取值
    printf("获取值...\n");
    char *name = kv_store_get(store, "name");
    if (name) {
        printf("name: %s\n", name);
        free(name);
    }
    
    char *age = kv_store_get(store, "age");
    if (age) {
        printf("age: %s\n", age);
        free(age);
    }
    
    char *city = kv_store_get(store, "city");
    if (city) {
        printf("city: %s\n", city);
        free(city);
    }
    
    // 测试更新值
    printf("更新值...\n");
    kv_store_put(store, "age", "26");
    age = kv_store_get(store, "age");
    if (age) {
        printf("更新后的age: %s\n", age);
        free(age);
    }
    
    // 测试删除键值对
    printf("删除键值对...\n");
    kv_store_delete(store, "city");
    city = kv_store_get(store, "city");
    if (city) {
        printf("city: %s\n", city);
        free(city);
    } else {
        printf("city已被删除\n");
    }
    
    // 测试不存在的键
    char *country = kv_store_get(store, "country");
    if (country) {
        printf("country: %s\n", country);
        free(country);
    } else {
        printf("country不存在\n");
    }
    
    // 关闭键值存储
    printf("关闭存储...\n");
    kv_store_close(store);
    
    printf("测试完成\n");
    return 0;
}